package com.openmanus.agent.service;

import com.openmanus.agent.core.AgentState;
import com.openmanus.agent.entity.AgentEntity;

import java.util.List;

/**
 * 智能体 Service 接口
 * 
 * @author OpenManus Team
 * @version 1.0.0
 */
public interface AgentService {

    /**
     * 根据名称查找智能体
     * 
     * @param name 智能体名称
     * @return 智能体实体
     */
    AgentEntity findByName(String name);

    /**
     * 根据类型查找智能体列表
     * 
     * @param agentType 智能体类型
     * @return 智能体实体列表
     */
    List<AgentEntity> findByType(String agentType);

    /**
     * 根据状态查找智能体列表
     * 
     * @param state 智能体状态
     * @return 智能体实体列表
     */
    List<AgentEntity> findByState(AgentState state);

    /**
     * 更新智能体状态
     * 
     * @param id 智能体ID
     * @param state 新状态
     * @return 是否更新成功
     */
    boolean updateState(Long id, AgentState state);

    /**
     * 查找启用的智能体列表
     * 
     * @return 启用的智能体实体列表
     */
    List<AgentEntity> findEnabledAgents();

    /**
     * 注册智能体
     * 
     * @param agentEntity 智能体实体
     * @return 是否注册成功
     */
    boolean registerAgent(AgentEntity agentEntity);

    /**
     * 启用智能体
     * 
     * @param id 智能体ID
     * @return 是否启用成功
     */
    boolean enableAgent(Long id);

    /**
     * 禁用智能体
     * 
     * @param id 智能体ID
     * @return 是否禁用成功
     */
    boolean disableAgent(Long id);
}
